package cn.yotta.user.core.server.service;

import cn.yotta.user.api.params.login.BaseLoginRequest;
import cn.yotta.user.api.params.user.UserFindByTokenRequest;
import cn.yotta.user.api.vo.TokenVo;
import cn.yotta.user.api.vo.UserVo;

/**
 * @author wyaoyao
 * @date 2022/11/8 17:32
 */
public interface LoginService {

    /**
     * 登录接口
     * @param request 登录请求
     * @return 用户token信息
     */
    TokenVo login(BaseLoginRequest request);

    /**
     * 根据token获取当前登录用户
     * @param request 登录用户的token信息
     * @return 当前登录用户信息
     */
    UserVo getLoginUser(UserFindByTokenRequest request);

    /**
     * 用户登出
     * @param request 登出请求参数
     * @return 是否成功登出
     */
    Boolean logout(UserFindByTokenRequest request);
}
